import { resetRouter } from '@/router'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { getInfo } from '@/api/user'

export default {
  namespaced: true,
  state: {
    token: getToken() || '',
    userInfo: ''
  },
  mutations: {
    // 将token保存到vuex和js-cookie中
    instToken(state, value) {
      state.token = value
      setToken(value)
    },
    // 删除 vuex 和 js-cookie 中 token 以及用户信息
    deleToken(state) {
      state.token = ''
      removeToken()
      state.userInfo = ''
      // 重置路由
      resetRouter()
    },
    // 设置 vuex 用户信息
    setUserInfo(state, value) {
      state.userInfo = value
    }
  },
  actions: {
    // 调用 mutations 中的 instToken 方法进行设置token
    setToken(ctx, value) {
      ctx.commit('instToken', value)
    },
    // 获取用户信息
    getUserInfo(ctx) {
      getInfo(ctx.state.token)
        .then((res) => {
          console.log('dfsdsfs', res)
          ctx.commit('setUserInfo', res)
          console.log(ctx)
        }).catch(() => {})
    }
  }
}
